#ifndef _lcd_st7735_h
#define _lcd_st7735_h
#ifdef __cplusplus
 extern "C" {
#endif
#include "main.h"
#include "gpio.h"
#include "spi.h"
 //LCD片选脚
#define CS_HIGH   HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET)
#define CS_LOW   HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET)

//指令数据选择脚   对应屏幕上面的a0脚  输出低电平，代表命令，高电平，代表数据
#define COMMAND  HAL_GPIO_WritePin(CMD_DATA_GPIO_Port, CMD_DATA_Pin, GPIO_PIN_RESET)
#define DATA     HAL_GPIO_WritePin(CMD_DATA_GPIO_Port, CMD_DATA_Pin, GPIO_PIN_SET)

//复位脚
#define reset_high  HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET)
#define reset_low  HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET)
//背光脚
#define  led_high HAL_GPIO_WritePin(BACK_LED_GPIO_Port,BACK_LED_Pin,GPIO_PIN_SET)
#define  led_low HAL_GPIO_WritePin(BACK_LED_GPIO_Port,BACK_LED_Pin,GPIO_PIN_RESET)
//lcd背光颜色
#define RED    0xf800
#define GREEN  0x07e0
#define BLUE   0x001f
#define YELLOW 0xffe0
#define WHITE  0xffff
#define BLACK  0x0000
#define PURPLE 0xf81f
#define MAGENTA   0xF81F        //  品红
//#define   BLACK     0x0000       //   黑色    
//#define   NAVY      0x000F      //    深蓝色  
//#define   DGREEN    0x03E0        //  深绿色  
//#define   DCYAN     0x03EF       //   深青色  
//#define   MAROON    0x7800       //   深红色      
//#define   PURPLE    0x780F       //   紫色  
//#define   OLIVE     0x7BE0       //   橄榄绿      
//#define   LGRAY     0xC618        //  灰白色
//#define   DGRAY     0x7BEF        //  深灰色      
//#define   BLUE      0x001F        //  蓝色    
//#define   GREEN     0x07E0        //  绿色          
//#define   CYAN      0x07FF        //  青色  
//#define   RED       0xF800        //  红色       
//#define   MAGENTA   0xF81F        //  品红    
//#define   YELLOW    0xFFE0        //  黄色        
//#define   WHITE     0xFFFF        //  白色  

#define LCD_Width 128
#define LCD_Height 128
 //lcd重要参数�?
 typedef struct
 {
 	uint16_t width;			//LCD宽度
 	uint16_t height;			//LCD高度
 	uint16_t id;				  //LCD ID
 	uint8_t  dir;			  //º横屏还是竖屏  0 竖屏 1 横屏
 	uint16_t	 wramcmd;		//�?始写gram指令
 	uint16_t  setxcmd;		//设置x坐标
 	uint16_t setycmd;		//设置y坐标
 	uint8_t   xoffset;
 	uint8_t	 yoffset;
 }_lcd_dev;
 void lcd_clear(uint16_t color);
 void tft_init();
 void draw_point(uint16_t x,uint16_t y,uint16_t color);
 void TFT_ShowChar(uint16_t x, uint16_t y, char ch, uint16_t back_color, uint16_t font_color, uint8_t font_size);
 void LCD_ShowCharNumber(uint16_t x, uint16_t y, uint32_t max_width, uint8_t  number, uint16_t back_color, uint16_t font_color, uint8_t font_size);
 void LCD_ShowCharStr(uint16_t x, uint16_t y, uint32_t max_width, char* str, uint16_t back_color, uint16_t font_color, uint8_t font_size);
 #ifdef __cplusplus
}
#endif

#endif //
